home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 21 / CU Amiga Magazine's Super CD-ROM 21 (1998)(EMAP Images)(GB)[!][issue 1998-04].iso / CUCD / Programming / RTGMaster / demos / moon / FIXED.C < prev    next >
C/C++ Source or Header  |  1996-05-14  |  695b  |  36 lines

  1. #include "fixed.h"
  2.  
  3. static long         cos_table [] =
  4. {
  5. #include "costable.h"
  6. };
  7.  
  8. void FIX_cos_sin( angle_t angle, fixed *cosine, fixed *sine)
  9. {
  10.   while(angle<0) angle+=3600;
  11.   while(angle>=3600) angle-=3600;
  12.   if(angle < 1800 ){
  13.     if(angle < 900 ){
  14.       *cosine = cos_table [angle];
  15.       *sine   = cos_table [900-angle];
  16.     }else{
  17.       angle -= 900;
  18.  
  19.       *sine   =  cos_table [angle];
  20.       *cosine = -cos_table [900-angle];
  21.     }
  22.   }else{
  23.     if ( angle < 2700 ){
  24.       angle -= 1800;
  25.  
  26.       *cosine = -cos_table [angle];
  27.       *sine   = -cos_table [900-angle];
  28.     }else {
  29.       angle -= 2700;
  30.  
  31.       *sine   = -cos_table [angle];
  32.       *cosine =  cos_table [900-angle];
  33.     }
  34.   }
  35. }
  36.